www.gusucode.com > matlab神经网络原理与实例精解 本书源文件 > 第9章 反馈神经网络/elman_stockTrain.m
% elman_stockTrain.m %% 清理 close all clear,clc %% 加载数据 load stock1 % Name Size Bytes Class Attributes % % stock1 1x280 2240 double % 归一化处理 mi=min(stock1); ma=max(stock1); stock1=(stock1-mi)/(ma-mi); % 划分训练数据与测试数据:前140个维训练样本,后140个维测试样本 traindata = stock1(1:140); %% 训练 % 输入 P=[]; for i=1:140-5 P=[P;traindata(i:i+4)]; end P=P'; % 期望输出 T=[traindata(6:140)]; % 创建Elman网络 threshold=[0 1;0 1;0 1;0 1;0 1]; % net=newelm(threshold,[0,1],[20,1],{'tansig','purelin'}); net=elmannet; % 开始训练 % 设置迭代次数 net.trainParam.epochs=1000; % 初始化 net=init(net); net=train(net,P,T); % 保存训练好的网络 save stock_net net %% 使用训练数据测试一次 y=sim(net,P); error=y-T; mse(error); fprintf('error= %f\n', error); T = T*(ma-mi) + mi; y = y*(ma-mi) + mi; plot(6:140,T,'b-',6:140,y,'r-'); title('使用原始数据测试'); legend('真实值','测试结果');